# 写一个三乐购物系统,功能使用函数封装
# 1,欢迎界面
#   1,登录
#      输入用户名和密码
#      和系统里保存的用户信息比较,判断用户和密码是否合法
#      登录失败,返回上一级
#      登录成功:
#          1,查看商品信息
#          2,加入购物车
#          3,结算购物车
#          4,返回上一级
#   2,注册
#       用户名,用户密码,用户存入金额
#       用户信息固化(保存用户)
#   3,退出

import json
import os

file_path = "user.txt"
name_dict = {'root':{'password':'123456','money':100},'youshujuan':{'password':'1234','money':9999999}}
goods_message = {'翻天娃辣条':3,'纸巾':5}

if os.path.exists(file_path):
    fp = open(file_path)
    name_str = fp.read()
    name_dict = json.loads(name_str)

# 主页面
def home():
    print("欢迎来到三乐购物系统！\n输入”1“进行登录\n输入“2”进行注册\n输入“3”退出")
    while 1:
        num = int(input("请输入对应业务的数字："))
        # 登录
        if num == 1:
            load()
        # 注册
        if num == 2:
            resist()
        # 退出
        if num == 3:
            break

# 登录成功
def load_success():
    print("1,查看商品信息\n2,加入购物车\n3,结算购物车\n4,返回上一级")
    sum = 0
    while 1:
        num = int(input("请输入对应业务的数字："))
        if num == 1:
            name = input("请输入你要查询的商品：")
            if name in goods_message:
                print(f"该商品的价格为：{goods_message[name]}\n")
        if num == 2:
            name = input("请输入要加入购物车的商品名：")
            num = int(input("请输入该商品的数量："))
            if name in goods_message:
                sum = sum + goods_message[name] * num
        if num == 3:
            print(f"该次结算购物车为{sum}元\n")
        if num == 4:
            load()

# 登录
def load():
    print("\n欢迎来到登录页面，按“q”退出登录页面\n")
    if input()!="q":
        username = input("请输入用户名：")
        password = input("请输入密码：")
        if username in name_dict:
            if name_dict[username]['password'] == password:
                print("登录成功！")
                load_success()
                return 1
        else:
            print("登陆失败，请重新登录!")
            load()
            return 0
    else:
        home()

# 注册
def resist():
    print("\n欢迎来到注册页面\n")
    username = input("请输入用户名：")
    if username in name_dict:
        print("你已经注册过啦！\n")
        return 1
    else:
        password = input("请输入密码：")
        money = int(input("请输入存入金额："))
        message = {'password':password,'money':money}
        name_dict[username] = message
        fp = open(file_path, "w")
        result_str = json.dumps(name_dict)
        fp.write(result_str)  #只能写入字符串，不能直接写入字典
        fp.flush()  #强制把写入内容从内存刷入到磁盘
        return 1

home()